<?php

class DatosCNE  {
	
	var $last_error = "";
	var $nacionalidad = "V";
	var $cedula = "";
	
	function __construct() {
		$this->last_error = "";	
		$this->nacionalidad = "V";
	}
	
	function setCedula($cedula) {
		$this->cedula = trim($cedula);
	}	
	
	function  setNacionalidad($nacionalidad) {
		$this->nacionalidad = $nacionalidad;	
	}
	
	function file_get_contents_curl($url) {
		$ch = curl_init();		 
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser.
		curl_setopt($ch, CURLOPT_URL, $url);     
		$data = curl_exec($ch);
		curl_close($ch);     
		return $data;
	}
	
	
	function fetchInfo()
	{
		$cedula = $this->cedula;
		$nacionalidad = $this->nacionalidad;
		$url = "http://www.cne.gov.ve/web/registro_electoral/ce.php?nacionalidad=$nacionalidad&cedula=$cedula";
		return strip_tags($this->file_get_contents_curl($url));
	}
	
	function getelem($buscar,$reemplazar,$cadena) {
		$respuesta = array();
		if(strpos($cadena,$buscar)!==false) {
			$nueva = trim(str_replace($buscar,"",$cadena));
			$respuesta = array($reemplazar => $nueva);
		}
		return $respuesta;
	}
	
	function getError() {
		return $this->last_error;	
	}

	function getDatos() {
		if(empty($this->cedula)) {
			$this->last_error = "La cedula no existe";	
			return false;
		}
		if(empty($this->nacionalidad)) {
			$this->last_error = "Debe especificar la nacionalidad";	
			return false;
		}
		$result = $this->fetchInfo();		
		$parts = explode("\n",$result);		
		$partes = array();
		$elementos = array(	"Cédula:" => "cedula",
							"Nombre:" => "nombre",
							"Centro:" => "centro",
							"Dirección:" => "direccion",
							"Estado:" => "estado",
							"Municipio:" => "municipio",
							"Parroquia:" => "parroquia" );
							
		foreach($parts as $p) {
			$micad = trim($p);
			if(strlen($micad)>5) {
				foreach($elementos as $k => $v) {
					$mielem = $this->getelem($k,$v,$micad);
					if(count($mielem)>0) {
						foreach($mielem as $a => $b) {
							$partes[$a] =$b;	
						}
					}
				}
			}
		}		
		if(count($partes)<4) {
			$this->last_error = "No se encontro informacion";
			return false;
		}
	    return $partes;
	}
}

?>